{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "jp-MarkdownHeadingCollapsed": true
   },
   "source": [
    "# crawling data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import urllib3\n",
    "from lxml import html\n",
    "from datetime import date, datetime, timedelta\n",
    "import json\n",
    "\n",
    "http = urllib3.PoolManager()\n",
    "def xpath_first(node, xpath):\n",
    "    rs = node.xpath(xpath)\n",
    "    if len(rs) > 0:\n",
    "        return rs[0]\n",
    "    return None\n",
    "\n",
    "max_date = date(2023, 10, 31)\n",
    "dt = date(2013, 11, 1)\n",
    "\n",
    "data = []\n",
    "\n",
    "base = 'https://en.tutiempo.net/records/zuuu/{}'\n",
    "while dt <= max_date:\n",
    "    url = base.format(datetime.strftime(dt, '%d-%B-%Y.html').lower().lstrip('0'))\n",
    "    res = http.request(method='GET', url=url)\n",
    "    if res.status == 200:\n",
    "        print(f'parse {url}')\n",
    "        page = html.fromstring(res.data.decode('utf-8'))\n",
    "        tr_nodes = page.xpath('//div[@id=\"HistoricosData\"]//tr[position()>=3]')\n",
    "        for tr in tr_nodes:\n",
    "            count = tr.xpath('count(td)')\n",
    "            if count == 6:\n",
    "                hour = xpath_first(tr, './td[1]/text()')\n",
    "                condition = xpath_first(tr, './td[2]/span/text()')\n",
    "                temp = xpath_first(tr, './td[3]/text()')\n",
    "                wind = xpath_first(tr, './td[4]/text()')\n",
    "                wind_direction = xpath_first(tr, './td[4]/img/@src')\n",
    "                wind_direction = wind_direction.split('/')[-1][:-4]\n",
    "                hum = xpath_first(tr, './td[5]/text()')\n",
    "                pre = xpath_first(tr, './td[6]/text()')\n",
    "                row = {\n",
    "                    'date': str(dt),\n",
    "                    'hour': hour,\n",
    "                    'condition': condition,\n",
    "                    'temp': temp,\n",
    "                    'wind': wind,\n",
    "                    'wind_direction': wind_direction,\n",
    "                    'hum': hum,\n",
    "                    'pre': pre\n",
    "                }\n",
    "                data.append(row)\n",
    "    else:\n",
    "        print(f'failed {url}: {res.status}')\n",
    "    dt = dt + timedelta(days=1)\n",
    "json.dump(obj=data, fp=open('climate-chengdu.json', mode='w', encoding='utf-8'), ensure_ascii=False)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Load data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "\n",
    "types = {\n",
    "    'date': 'datetime64[ns]',\n",
    "    'hour': 'string',\n",
    "    'condition': 'string',\n",
    "    'temp': 'string',\n",
    "    'wind': 'string',\n",
    "    'wind_direction': 'string',\n",
    "    'hum': 'string',\n",
    "    'pre': 'string'\n",
    "}\n",
    "data = pd.read_json('climate-chengdu.json', dtype=types)\n",
    "data['temp'] = data['temp'].map(lambda item: item[:-1]).astype('Int32')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Analysis\n",
    "\n",
    "## by year"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: xlabel='year', ylabel='value'>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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M3id612sJqYOO/sSERGRbDHIEBERkWwxyLQxWq0WL774IrRardRF8Wm8zp7B6+wZvM6ewet8eXy+sy8RERH5LtbIEBERkWwxyBAREZFsMcgQERGRbDHIEBERkWwxyMjMggULMGDAAOh0OkRHR2P8+PHIyspy2qempgbTpk1DREQEgoODMWnSJBQWFjrt8+STT6J///7QarXo27fvRd/z2LFj0Ol0CA0NdfHZeC9PXmdBELBw4UIkJSVBq9WiXbt2eOWVV9x1al7Fk9d5zZo1GDx4MHQ6HaKiojBp0iTk5OS46cy8jyuu9b59+zB58mTEx8cjICAA3bt3x3vvvdfovTZs2ICUlBRotVp07twZixcvdvfpeQ1PXecVK1Zg1KhRiIqKQkhICFJTU7FmzRqPnKO3YZCRmY0bN2LatGnYtm0bfv31V1gsFtxwww2orKx07PP000/jxx9/xPLly7Fx40bk5eVh4sSJjY714IMP4s4777zo+1ksFkyePBnXXXedy8/Fm3nyOj/11FP49NNPsXDhQmRmZuKHH37AwIED3XJe3sZT1zk7Oxu33norRowYgb1792LNmjUoLi5u8ji+yhXXOj09HdHR0fjPf/6DjIwMPPfcc5g3bx4++OADxz7Z2dkYM2YMhg8fjr1792LmzJl46KGH2sxN1lPXedOmTRg1ahR++uknpKenY/jw4Rg3bhz27Nnj0fP1CgLJWlFRkQBA2LhxoyAIglBaWipoNBph+fLljn0OHz4sABC2bt3a6PUvvvii0KdPn2aPP3fuXOGee+4RPv/8c0Gv17u6+LLhrut86NAhQa1WC5mZmW4ru5y46zovX75cUKvVgs1mc2z74YcfBIVCIZjNZtefiAxc6bWu88QTTwjDhw93PJ47d67Qs2dPp33uvPNOYfTo0S4+A3lw13VuSo8ePYT58+e7puAywhoZmSsrKwMAhIeHAxCTvMViQVpammOfbt26oUOHDti6dWurjr1u3TosX74cixYtcl2BZcpd1/nHH39Ep06dsGrVKiQmJqJjx4546KGHUFJS4toTkAl3Xef+/ftDqVTi888/h81mQ1lZGb744gukpaVBo9G49iRkwlXXuqyszHEMANi6davTMQBg9OjRrf794yvcdZ0vZLfbUVFRcdF9fBWDjIzZ7XbMnDkT11xzDXr16gUAKCgogJ+fX6P+LAaD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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "temp = data.loc[:, ('date', 'temp')]\n",
    "temp['year'] = temp['date'].map(lambda item: item.year)\n",
    "temp = temp[['year', 'temp']]\n",
    "agg = temp.groupby(by='year', as_index=False).agg(['max', 'min', 'mean'])\n",
    "agg.columns = ['year', 'max', 'min', 'mean']\n",
    "melt_agg = pd.melt(frame=agg, id_vars=['year'])\n",
    "sns.lineplot(data=melt_agg, x='year', y='value', hue='variable')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: xlabel='year', ylabel='value'>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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LIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALIsiAwAALMsSRSYuLk433nijfH191aZNG23ZssXVkQAAgBtw+yKzaNEixcTE6IUXXtC2bdsUHh6uqKgopaWluToaAABwMbcvMlOmTNHgwYM1YMAANWrUSO+++678/Pw0e/ZsV0cDAAAu5tZFJjs7W4mJiYqMjLSPeXh4KDIyUgkJCfk+JysrSxkZGQ43AABQOtmMMcbVIa7kyJEjuuGGG/Ttt98qIiLCPj569GitX79emzdvzvOc8ePHa8KECXnG09PTFRgYWKx53U3qi02d2r7muF3FlKR0s+L7TGaUJvxulIySfp8zMjIUFBT0l3+/3fqITEHExsYqPT3dfjt8+LCrIwEAgGLi6eoAV1OpUiWVKVNGx48fdxg/fvy4qlatmu9zfHx85OPjUxLxAACAi7n1ERlvb2+1atVK8fHx9rHc3FzFx8c7fNQEAACuT259REaSYmJi1K9fP9100026+eab9eabb+rs2bMaMGCAq6MBAAAXc/si07NnT504cULjxo3TsWPH1Lx5c61evVohISGujgYAAFzM7YuMJA0bNkzDhg1zdQwAAOBm3HqNDAAAwNVY4ogMCoZrJeBK+N0AUFpwRAYAAFgWRQYAAFgWRQYAAFgWRQYAAFgWRQYAAFgWRQYAAFgWp18DAIC/5K6XbeCIDAAAsCyKDAAAsCyKDAAAsCyKDAAAsCyKDAAAsCyKDAAAsCyKDAAAsCybMca4OkRxysjIUFBQkNLT0xUYGOjqOAAA4Bpc699vjsgAAADLosgAAADLosgAAADLosgAAADLosgAAADLosgAAADLosgAAADLosgAAADLosgAAADLosgAAADLosgAAADLosgAAADLosgAAADLosgAAADLosgAAADL8nR1gOJmjJEkZWRkuDgJAAC4Vpf/bl/+O34lpb7InDlzRpIUGhrq4iQAAMBZZ86cUVBQ0BUft5m/qjoWl5ubqyNHjiggIEA2m63I5s3IyFBoaKgOHz6swMDAIpu3uFkxN5lLBplLBplLBplLRnFmNsbozJkzql69ujw8rrwSptQfkfHw8FCNGjWKbf7AwEDL/ML9kRVzk7lkkLlkkLlkkLlkFFfmqx2JuYzFvgAAwLIoMgAAwLIoMgXk4+OjF154QT4+Pq6O4hQr5iZzySBzySBzySBzyXCHzKV+sS8AACi9OCIDAAAsiyIDAAAsiyIDAAAsiyIDAAAs67ouMpMmTVLr1q0VEBCgKlWqqGvXrtq3b5/DNhcuXFB0dLQqVqwof39/de/eXcePH3fY5qmnnlKrVq3k4+Oj5s2b59nPvn371LFjR4WEhMjX11d16tTRmDFjdPHiRbfN/EcHDhxQQECAgoODnc5bkplTUlJks9ny3DZt2uS2maXfr175+uuvq169evLx8dENN9ygiRMnum3m8ePH5/s+lytXzm0zS9KaNWvUtm1bBQQEqHLlyurevbtSUlLcOvPixYvVvHlz+fn5qVatWvrXv/7ldN6izL1z50716tVLoaGhKlu2rBo2bKi33norz77WrVunli1bysfHR3Xr1tXcuXPdOvPRo0fVu3dv1atXTx4eHhoxYkSB8pZk5qVLl+rOO+9U5cqVFRgYqIiICK1Zs8atM2/YsEG33HKLKlasqLJly6pBgwaaOnVqgTI7MNexqKgoM2fOHLN7926zY8cOc88995iaNWuazMxM+zZPPPGECQ0NNfHx8Wbr1q2mbdu2pl27dg7zDB8+3Lzzzjvm0UcfNeHh4Xn2c/DgQTN79myzY8cOk5KSYpYvX26qVKliYmNj3TbzZdnZ2eamm24yd999twkKCnI6b0lmTk5ONpLMl19+aY4ePWq/ZWdnu23my9vUr1/fLF++3Pz0009m69at5osvvnDbzGfOnHF4f48ePWoaNWpk+vXr57aZf/rpJ+Pj42NiY2PNgQMHTGJiomnfvr1p0aKF22b+/PPPjaenp5kxY4Y5ePCgWblypalWrZp5++23nc5cVLlnzZplnnrqKbNu3Tpz8OBB8+GHH5qyZcs6ZPrpp5+Mn5+fiYmJMUlJSebtt982ZcqUMatXr3bbzMnJyeapp54y8+bNM82bNzdPP/2001lLOvPTTz9tJk+ebLZs2WL2799vYmNjjZeXl9m2bZvbZt62bZtZsGCB2b17t0lOTjYffvih8fPzM++9957Tmf/oui4yf5aWlmYkmfXr1xtjjDl9+rTx8vIyS5YssW+zd+9eI8kkJCTkef4LL7xw1VLwR88884y59dZb3T7z6NGjzSOPPGLmzJlT4CJTUpkvF5nt27cXSc6SyJyUlGQ8PT3NDz/8YJnMf7Zjxw4jyXz99ddum3nJkiXG09PT5OTk2MdWrFhhbDZbgYpuSWTu1auXeeihhxzGpk2bZmrUqGFyc3MLlbkocl/25JNPmo4dO9rvjx492jRu3Nhhm549e5qoqCi3zfxHt99+e6GKjCsyX9aoUSMzYcIES2V+8MEHzSOPPFKovNf1R0t/lp6eLkmqUKGCJCkxMVEXL15UZGSkfZsGDRqoZs2aSkhIKPB+Dhw4oNWrV+v2228vXGAVb+a1a9dqyZIliouLK3TOPyru9/n+++9XlSpVdOutt2rFihVunfmzzz5TnTp1tHLlStWuXVs33nijBg0apFOnTrlt5j/74IMPVK9ePd12222FC6ziy9yqVSt5eHhozpw5ysnJUXp6uj788ENFRkbKy8vLLTNnZWXJ19fXYaxs2bL6+eefdejQoUJlLsrc6enp9jkkKSEhwWEOSYqKiirU71hxZy5OJZU5NzdXZ86cKZLXVVKZt2/frm+//bbQfwspMv9fbm6uRowYoVtuuUVNmjSRJB07dkze3t551oaEhITo2LFjTu+jXbt28vX1VVhYmG677Ta9+OKLbpv5119/Vf/+/TV37twi/SKw4szs7++vN954Q0uWLNGqVat06623qmvXroUuM8WZ+aefftKhQ4e0ZMkSzZ8/X3PnzlViYqIeeught838RxcuXNDHH3+sgQMHFiqvVLyZa9eurS+++ELPPfecfHx8FBwcrJ9//lmLFy9228xRUVFaunSp4uPjlZubq/379+uNN96Q9PuaDnfI/e2332rRokUaMmSIfezYsWMKCQnJM0dGRobOnz/vlpmLS0lmfv3115WZmam///3vbp+5Ro0a8vHx0U033aTo6GgNGjSoUJlL/bdfX6vo6Gjt3r1bGzZsKLZ9LFq0SGfOnNHOnTv17LPP6vXXX9fo0aMLPF9xZh48eLB69+6t9u3bF+m8xZm5UqVKiomJsd9v3bq1jhw5on/961+6//77CzxvcWbOzc1VVlaW5s+fr3r16kmSZs2apVatWmnfvn2qX79+geYtid9nSVq2bJnOnDmjfv36FXqu4sx87NgxDR48WP369VOvXr105swZjRs3Tg899JD+97//yWazFWje4v5v8ODBg7rvvvt08eJFBQYG6umnn9b48ePl4VG4f4MWRe7du3frgQce0AsvvKDOnTsXKs+1IPOVMy9YsEATJkzQ8uXLVaVKlQLvSyqZzN98840yMzO1adMm/fOf/1TdunXVq1evAu+PIzKShg0bppUrV+qrr75SjRo17ONVq1ZVdna2Tp8+7bD98ePHVbVqVaf3ExoaqkaNGqlXr1569dVXNX78eOXk5Lhl5rVr1+r111+Xp6enPD09NXDgQKWnp8vT01OzZ892y8z5adOmjQ4cOFDg5xd35mrVqsnT09NeYiSpYcOGkqTU1FS3zPxHH3zwge677748/wJ3VnFnjouLU1BQkF577TW1aNFC7du310cffaT4+Hht3rzZLTPbbDZNnjxZmZmZOnTokI4dO6abb75ZklSnTp0CZS6q3ElJSerUqZOGDBmiMWPGODxWtWrVPGdoHT9+XIGBgSpbtqxbZi4OJZV54cKFGjRokBYvXpznIz13zVy7dm01bdpUgwcP1jPPPKPx48cXKvd1vdg3NzfXREdHm+rVq5v9+/fnefzyAqdPPvnEPvbDDz8UyWLfefPmGU9PT6cXGpZU5qSkJLNr1y777eWXXzYBAQFm165d5tSpU26ZOT+DBg0q0JkpJZV5zZo1RpI5cOCAfezy4tl9+/a5ZebLfvrpJ2Oz2cxnn33mVE5XZI6JiTE333yzw9iRI0eMJLNx40a3zJyfRx991ERERDiVt6hz796921SpUsU8++yz+e5n9OjRpkmTJg5jvXr1KtBi35LK/EeFXexbkpkXLFhgfH19zaefflrgvCWd+c8mTJhgatWqVaj813WRGTp0qAkKCjLr1q1zOJX03Llz9m2eeOIJU7NmTbN27VqzdetWExERked/JD/++KPZvn27efzx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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.barplot(data=melt_agg, x='year', y='value', hue='variable')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## by month"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
